<?php


namespace app\controller;


use app\BaseController;
use app\middleware\Check;
use app\model\CommentModel;
use think\facade\Validate;
use think\Request;
use think\response\Json;
use think\validate\ValidateRule;

class Comment extends BaseController
{
    protected $middleware = [Check::class];

    /**用户评论列表
     * @param Request $request
     * @return Json
     */
    public function list(Request $request)
    {
        if (!request()->isPost()) return jsonFail('请采用正确的方式登录!');
        // 接收参数
        $input['limit'] = $request->post('limit'); // 每页限制数量
        $input['page'] = $request->post('page');// 当前页
        $input['store_id'] = $request->post('store_id'); // 商户id
        $input['is_show'] = $request->post('is_show'); // 是否隐藏评论
        // 参数校验
        $validate = Validate::rule([
            'limit' => ValidateRule::isRequire(null, '缺少参数'),
            'page' => ValidateRule::isRequire(null, '缺少参数'),
            'store_id' => function ($value) {
                return $value === null ? '缺少参数' : true;
            },
            'is_show' => function ($value) {
                return $value === null ? '缺少参数' : true;
            }
        ]);

        if (!$validate->check($input)) {
            return jsonFail($validate->getError());
        }
        // 逻辑处理
        return CommentModel::list($input, $request->post('token'));
    }

    /**修改评论是否显示
     * @param Request $request
     * @return Json
     */
    public function changeShow(Request $request)
    {
        if (!request()->isPost()) return jsonFail('请采用正确的方式登录!');
        // 接收参数
        $input['id'] = $request->post('id'); // 订单id
        $input['is_show'] = $request->post('is_show');// 是否显示
        // 参数校验
        $validate = Validate::rule([
            'id' => ValidateRule::isRequire(null, '缺少参数'),
            'is_show' => ValidateRule::isRequire(null, '缺少参数'),
        ]);

        if (!$validate->check($input)) {
            return jsonFail($validate->getError());
        }
        // 逻辑处理
        return CommentModel::changeShow($input, $request->post('token'));
    }
}